Virtual memory management is a technique used to provide applications and/or other processes with a contiguous (virtual) address space. Virtual addresses are mapped to physical storage, from which data stored at the virtual address may be accessed.
The virtual address space may be larger than the available physical address space, which is limited by the size of the physical memory. Data may be written to secondary, non-volatile storage, such as a disk drive, and may be read into memory as needed.
To read/write data efficiently, data may be organized, read, and/or written as “pages”, the size of which may be determined at least in part based on characteristics of the secondary storage.
Page caching techniques may be used to determine and keep track of which pages comprising the virtual address space are stored in memory at any given point in time. A page table typically is used to keep track of which pages are stored where. Page replacement algorithms, such as “least recently used”, typically are used to determine which pages to purge from the page cache to make room for pages comprising data that has been requested to be accessed. In addition to “least recently used”, conventional page replacement algorithms include FIFO (first in, first out); Second Chance Algorithm, Counting, Least Frequently Used (LFU); and Most Frequently Used (MFU). A “page manager” or “page supervisor” typically is used to implement the page replacement strategy/algorithm selected to be used in a given system and/or context.